3.8 [FmpPayload] Sections
These are optional sections that describes the FMP payload content for FMP Capsule files.
There must be at least one and at most two <FmpFileData>
statements. The
<FmpFileData>
statements start with FILE DATA
. The first EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER
. The second EFI_FIRMWARE_MANAGEMENT_CAPSULE_IMAGE_HEADER
.
Prototype
<FmpPayload> ::= "[FmpPayload" "." <UiFmpName> "]" <EOL>
<FmpTokens>
<FmpFileData>{1,2}
<UiFmpName> ::= <Word>
<FmpTokens> ::= [<TS> "IMAGE_HEADER_INIT_VERSION" <Eq> <Hex2> <EOL>]
<TS> "IMAGE_TYPE_ID" <Eq> <RegistryFormatGUID> <EOL>
[<TS> "IMAGE_INDEX" <Eq> <Hex2> <EOL>]
[<TS> "HARDWARE_INSTANCE" <Eq> <Hex2> <EOL>]
[<TS> "MONOTONIC_COUNT"<Eq> <NumValUint64> <EOL>]
[<TS> "CERTIFICATE_GUID"<Eq> <RegistryFormatGUID><EOL>]
<FmpFileData> ::= <FileStatements>*
<FvStatements>*
<FdStatenents>*
<FileStatements> ::= <TS> "FILE" <Space> "DATA" <Eq> <Filename> <EOL>
<FvStatements> ::= "FV" <Eq> <FvNameOrFilename> <EOL>
<FvNameOrFilename> ::= {<FvUiName>} {<FvFilename>}
<FvUiName> ::= {<Word>} {"common"}
<FvFilename> ::= [<PATH>] <Word> "." "fv"
<FdStatements> ::= "FD" <Eq> <FdNameOrFilename> <EOL>
<FdNameOrFilename> ::= {<FdUiName>} {<FdFilename>}
<FdUiName> ::= {<Word>} {"common"}
<FdFilename> ::= [<PATH>] <Word> "." "fd"
Note: The CERTIFICATE_GUID
and MONOTONIC_COUNT
must work as a pair.
If CERTIFICATE_GUID
is provided, the FMP payload is processed as UEFI FMP
Authentication format, and MONOTONIC_COUNT
MUST be provided. If
CERTIFICATE_GUID
is not provided, the FMP payload is processed as UEFI FMP
non-Authentication format, and MONOTONIC_COUNT
MUST NOT be provided.
Example
[FmpPayload.Payload1]
# FMP payload header
IMAGE_HEADER_INIT_VERSION = 0x02
# FMP payload header
IMAGE_TYPE_ID = 938A6F2E-9711-49CE-90D5-7ED68AC96501
IMAGE_INDEX = 0x1 # FMP payload header
HARDWARE_INSTANCE = 0x0 # FMP payload header
FILE DATA = UpdateImage.bin
FILE DATA = VendorCodeBytes.bin # optional